package org.qiyu.live.api.service;

import org.qiyu.live.api.vo.LivingRoomInitVO;
import org.qiyu.live.api.vo.req.LivingRoomReqVO;
import org.qiyu.live.api.vo.req.OnlinePkReqVO;
import org.qiyu.live.api.vo.resp.LivingRoomPageResp;
import org.qiyu.live.api.vo.resp.RedPacketReceiveVO;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: sfx
 * Date: 2023-10-24
 * Time: 19:46
 */
public interface ILivingRoomService {

    /**
     * 开启直播间
     *
     * @param type 直播间类型
     * @return 返回是否成功开启直播间
     */
    boolean startLivingRoom(Integer type);

    /**
     * 关闭直播间
     *
     * @param roomId 直播间的id
     * @return 返回是否成功关闭直播间
     */
    boolean closeLivingRoom(Integer roomId);

    /**
     * 返回直播间列表
     *
     * @param livingRoomReqVo vo
     * @return 返回直播间列表
     */
    LivingRoomPageResp list(LivingRoomReqVO livingRoomReqVo);

    /**
     * 直播pk接口
     *
     * @param onlinePkReqVO
     */
    boolean onlinePk(OnlinePkReqVO onlinePkReqVO);

    LivingRoomInitVO anchorConfig(Long userId, Integer roomId);

    /**
     * 初始化红包雨是否成功
     *
     * @param roomId   房间id
     * @param anchorId 主播id
     * @return 返回是否初始化成功
     */
    Boolean prepareRedPacket(Integer roomId, Long anchorId);

    /**
     * 领取红包
     *
     * @param userId
     * @param redPacketConfigCode
     * @return
     */
    RedPacketReceiveVO getRedPacket(Long userId, String redPacketConfigCode);

    /**
     * 是否开启红包雨成功
     *
     * @param userId              主播用户id
     * @param redPacketConfigCode 红包雨设置的唯一表示
     * @return 返回是否开启红包雨成功
     */
    Boolean startRedPacket(Long userId, String redPacketConfigCode);
}